# ========== 第一阶段：构建 ==========
FROM golang:1.25 AS builder

ENV GOPROXY=https://goproxy.cn,direct
WORKDIR /app

# 先拷贝依赖文件，利用缓存
COPY go.mod go.sum ./
RUN go mod download

# 再拷贝源码
COPY . .

# 编译二进制文件
RUN go build -o bin/server ./app

# ========== 第二阶段：运行 ==========
FROM ubuntu:22.04

# 设置时区并安装证书
ENV TZ=Asia/Shanghai
#RUN apt-get update && \
#    apt-get install -y ca-certificates tzdata && \
#    rm -rf /var/lib/apt/lists/*

# 设置工作目录
WORKDIR /app

# 拷贝编译好的二进制文件
COPY --from=builder /app/bin/server .

# 拷贝配置目录（保持目录名一致）
COPY configs ./configs

COPY docs ./docs

# 设置环境变量，让 Viper 读取配置
ENV CONFIG_PATH=/app/configs

# 暴露端口（根据 config.yaml 配置）
EXPOSE 8080

# 启动应用
CMD ["./server"]

# docker build -t lzppp .
# docker run -d --name lzppp --network lihaha -p 8080:8080 -e APP_ENV=prod lzppp:1.0.0